Socket
Socket
Sign inDemoInstall

nightink

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nightink

A teeny-tiny templating engine.


Version published
Maintainers
1
Created
Source

NightInk

A teeny-tiny templating engine.

NightInk is a teeny-tiny Javascript templating engine, written as an ES6 module. While there are loads of existing templating engines out there, I couldn't find one I liked (anyone know of a comparison site? :P) - so I wrote my own (it's adding to the problem, I know!).

Also available in PHP: NightInk.php

Installation

Installation is done through npm:

npm install --save nightink

Usage

Here's a basic example:

import { NightInk } from '../NightInk.mjs';

// .....

let html = NightInk(template_string, {
	// options here
})

The contents of the options object is substituted into the template string. Consider the following template:

<p>Next launch in {{seconds}}!</p>
<p>Rocket info: {{model}} carrying {{payload.summary}} for {{payload.owner.name}}, totalling {{totals.weight}} tons</p>

...with this options object:

{
	seconds: 10,
	model: "Ariane 6",
	payload: {
		summary: "Sentinel-4",
		owner: {
			name: "Dr. Sean",
			company: "Sean's Satellites Inc."
		}
	},
	totals: {
		weight: 450,
		tomatoes: 56
	}
}

All the appropriate values will get extracted from the options object and substituted into the template string automagically. Under normal circumstances, values are escaped with HTML-entities before substitution (if appropriate), for security purposes (no script-injection attacks here, thank you!). If you'd like to disable this (make sure you know what you're doing!), simply use a single set of curly braces:

<p>The rocket escaped: {{escape_me}}</p>
<p>The launchpad did not escape {no_escaping_here}</p>

NightInk also has support for arrays (multiple levelled nested arrays are ok too :D). This is done like so:

<p>To go to {{place_name}}, you will need:</p> 
<ul>
	{#each list}
	<li>{{quantity}} x {{name}}</li>
	{#endeach}
</ul>
{
	plane_name: "space"
	list: [
		{ name: "Rocket", quantity: 1 },
		{ name: "Astronaut", quantity: 3 },
		{ name: "Fuel Cells", quantity: 55 },
		{ name: "Launchpad", quantity: 1 }
	]
}

License

NightInk is licensed under the Mozilla Public Licence 2.0. A copy of this license can be found in the LICENSE file in this repository.

Alternatively, tldr-legal has a summarythat you may find useful.

Keywords

FAQs

Package last updated on 01 May 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc